﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SistemaGO_Library.Entidades.Ocorrencia;
using SistemaGO_Library.Entidades.Usuario;
using SistemaGO_Library;

namespace SistemaGO_Desktop.Visao.Telas
{
    public partial class frmVincularFiscal : Form
    {
        private static frmVincularFiscal instancia = null;
        public Ocorrencia oco = new Ocorrencia();        
        private Fachada fachada = Fachada.getInstance();

        private frmVincularFiscal()
        {
            InitializeComponent();
        }

        public static frmVincularFiscal getInstance()  {
            if (instancia == null) {
                instancia = new frmVincularFiscal();
            } else {
                instancia.Focus();
            }
            return instancia;
        }

        private void btVincularFiscal_Click(object sender, EventArgs e) {
            if (!cbVincularFiscal.Text.Equals("Selecione"))
            {
                try  {
                    fachada.vincularFiscal(int.Parse(tbVincularCodigoFiscal.Text), cbVincularFiscal.Text);
                    MessageBox.Show("Fiscal vinculado com sucesso", "Vinculo realizado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch {                    
                    MessageBox.Show("Erro ao vincular fiscal", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Information);                
                }
            }
            else
            {
                MessageBox.Show("Selecione um fiscal", "Vinculo não realizado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cbVincularFiscal.Focus();
            }
        }

        private void frmVincularFiscal_FormClosing(object sender, FormClosingEventArgs e) {
            instancia = null;
        }

        private void frmVincularFiscal_Load(object sender, EventArgs e)
        {
            this.tb_usuarioTableAdapter.FillBy(this.sistemaGODataSet4.tb_usuario);
            if (!oco.Ocorrencia_cod.Equals(0))
            {
                //buscando a ocorrencia
                oco = fachada.buscarOcorrencia(oco.Ocorrencia_cod);
                tbVincularCodigoFiscal.Text = oco.Ocorrencia_cod.ToString();
                tbVincularAvRuaFiscal.Text = oco.Ocorrencia_av_rua;
                cbVincularBairroFiscal.Text = oco.Ocorrencia_bairro;
                tbVincularPontoDeReferenciaFiscal.Text = oco.Ocorrencia_ponto_ref;
                mtbVincularCepFiscal.Text = oco.Ocorrencia_cep;
                try {
                    pbVincularImagemFiscal.Image = Image.FromFile(oco.Ocorrencia_imagem);
                    pbVincularImagemFiscal.SizeMode = PictureBoxSizeMode.StretchImage;
                }
                catch {
                    MessageBox.Show("Imagem não encontrada!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                tbVincularNomeFiscal.Text = oco.Denunciante_nome;
                tbVincularEmailFiscal.Text = oco.Denunciante_email;
                mtbVincularCelularFiscal.Text = oco.Denunciante_celular;
                if (oco.Ocorrencia_envio.Equals("E")) {
                    rbVincularEnvioEmailFiscal.Checked = true;
                }
                else {
                    rbVincularEnvioCelularFiscal.Checked = true;
                }
            }
        }

        private void cbVincularFiscal_Leave(object sender, EventArgs e)
        {
            if (cbVincularFiscal.Text.Equals(""))
            {
                cbVincularFiscal.Text = "Selecione";
            }
        }       
    }
}
